# PyQuine
#
# Copyright (c) 2007 Alexis Couronne <www.skitoo.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
# 


from core.game import *
from core.party import Party
from core.organizer import Organizer
from core.prize import Prize

from datetime import datetime

import sqlobject, pmock

class TestGame( pmock.MockTestCase ):
    
    def setUp(self):
        sqlobject.sqlhub.processConnection = sqlobject.connectionForURI( 'sqlite:/:memory:' )
        Game.createTable(ifNotExists=True)
        Party.createTable(ifNotExists=True)
        Organizer.createTable(ifNotExists=True)
        Prize.createTable(ifNotExists=True)
        self.org = Organizer( name="Les campagnards", address="123 rue du jambon", postalCode="12300", city="Labas", callNumber="0512345612", webSite="www.site.com", email="orga@site.com" )
        self.party = Party( date_event=datetime(2007, 04, 10, 10, 00, 00), organizer=self.org )
        self.instance = Game( party=self.party, type=Game.typeLine )
        
    def tearDown(self):
        Game.dropTable()
        Party.dropTable()
        Organizer.dropTable()
        Prize.dropTable()
        
    def testGame(self):
        self.assertEquals( 1, self.instance.id )
        self.assertEquals( self.instance.party, self.party )
        self.assertEquals( self.instance.type, Game.typeLine )
        
    def testAddPrize(self):        
        prize1 = Prize( name="Jambon", description="Un super jambon de qualite", price=60.90 )
        prize2 = Prize( name="CD", description="Lot de 100 CD vierges", price=10.69 )
        self.instance.addPrize( prize1 )
        self.instance.addPrize( prize2 )
        self.assertEquals( 2, len( self.instance.prizes ) )
        
        